package jdk8.lambda;

import java.util.Arrays;

/**
 * Description: jdk1.8新特性：Lambda表达式（Lambda）
 * Lambda表达式（也称为闭包）是Java 8中最大和最令人期待的语言改变。
 * 它允许我们将函数当成参数传递给某个方法，或者把代码本身当作数据处理：函数式开发者非常熟悉这些概念。
 * 很多JVM平台上的语言（Groovy、Scala等）从诞生之日就支持Lambda表达式，但是Java开发者没有选择，只能使用匿名内部类代替Lambda表达式。
 * 
 * 引入了很多概念：函数式编程，函数式接口，方法引用，都还不是很理解
 * 
 * 个人认为：一般有用吧，就我而言，对这种新的语法不是很了解的话，上手有一点难度，当要是长期使用的话，代码会优雅简练很多
 * @author Kwum
 * @date 2017年6月28日 上午11:33:28
 * @version 1.0
 */

public class Run {

    public static void main(String[] args) {
        
        //Java SE8
        //推断参数
        Arrays.asList("a", "b", "c").forEach( s -> System.out.println( s ) );
        
        //Java SE8
        //方法引用
        Arrays.asList("a", "b", "c").forEach( System.out::println );
        
        //Java SE8 之前
        for(String s : Arrays.asList("a", "b", "c")){
            System.out.println(s);
        };
    }
}
